Дмитрий Масленников, «Т-Банк»
Consistency, Availability, Partitioning — можно гарантировать только 2 из этих свойств
Читаем самую последнюю запись
Система всегда отвечает (без ошибок). Ответ самыми свежими данными не гарантируется.
Система сохраняет гарантии при потерях на сети
Если нельзя создать надежную, консистентную систему, то надо дизайнить то, как система будет ломаться.
Частота и длительность сбоев важны для пользовательского опыта, но теорема их никак не учитывает.
Связь между клиентом и серверами чатсо теряется — проблема связности становится намного более серьезной
Если перестать менять состояние, то через какое-то время она придет в консистентное состояние: все записи применены в правильном порядке
Мы видим все свои записи в одной и той же сессии
Если перед записью (W2) мы делали чтение, которое показало эффект предыдущей записи (W1), то вторая запись (W2) должна всегда быть после предыдущей (W1)
Все записи одной сессии применяются строго по порядку
Мы не можем вычитать состоянее старее, чем мы уже читали
Если мы читаем состояние после некоторой записи, то в нем должны учитываться все предыдущие записи.
Нам не всегда нужна строгая консистенстность на практике
If Partitioning then Availability or Consistency Else Latency or Consistency
Взятие идей из не IT-систем. «Метод маленьких человечков»